home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-02
/
prodpack.zip
/
DB4PPSRC.EXE
/
DLGHEVL.PRG
< prev
next >
Wrap
Text File
|
1993-05-25
|
5KB
|
207 lines
FUNCTION DlgHeVl
PARAMETER p__val
PRIVATE lValidOk, lExact
lValidOk = .T.
lExact = SET( "EXACT" ) = "ON"
SET EXACT ON
DO CASE
*-------------------------
*-- Validation for DLGHelp
*-------------------------
CASE p__val = "BT_EDIT"
DLGEDIT[ 1 ] = hlp_title
DLGEDIT[ 2 ] = hlp_headng
gcHelpFile = "HLP_TEXT." + TRANSFORM( RECNO(), "@L 999" )
FXL_CANCEL = .F.
DO DlgEdit
IF .NOT. FXL_CANCEL
REPLACE hlp_title WITH DLGEDIT[ 1 ], ;
hlp_headng WITH DLGEDIT[ 2 ]
IF FILE( gcHelpFile )
APPEND MEMO Hlp_Text FROM ( gcHelpFile ) OVERWRITE
ENDIF
ENDIF
ERASE ( gcHelpFile )
CASE p__val = "BT_CONT" && Table of Contents
SET KEY TO
gc_file = TRIM( hlp_file )
gc_name = ""
gnLevel = 2
gnBarSel = -1
DLGCONT[ 1 ] = 0
TI_TEXT = Hlp_Title
FXL_CANCEL = .F.
btCont1st = .T.
DO DlgCont
IF .NOT. FXL_CANCEL
IF gnBarSel > 0
GO TOP
SKIP gnBarSel - 1
SET KEY TO
gc_file = TRIM( hlp_file )
gnMemo = 1
DO DlgSetHp
DO DlgDsHe
TI_TEXT = HelpCTit( TRIM( hlp_headng ), 51, .T. )
DO TStatic WITH WM_PAINT, BN_HILITE, GetId( "TI_TEXT" )
TI_TEXT = TRIM( hlp_headng )
ENDIF
ENDIF
CASE p__val = "BT_PGUP"
IF gnMemo > 1
gnMemo = MAX( gnMemo - 17, 1 )
ENDIF
DO DlgSetHp
DO DlgDsHe
CASE p__val = "BT_PGDN"
IF gnMemo > 1
gnMemo = gnMemo - 1
ENDIF
DO DlgSetHp
DO DlgDsHe
CASE p__val = "BT_NEXT"
SET KEY TO
IF EOF()
GO TOP
ELSE
SKIP
ENDIF
gnMemo = 1
DO DlgSetHp
DO DlgDsHe
TI_TEXT = HelpCTit( TRIM( hlp_headng ), 51, .T. )
DO TStatic WITH WM_PAINT, BN_HILITE, GetId( "TI_TEXT" )
TI_TEXT = TRIM( hlp_headng )
CASE p__val = "BT_PREV"
SET KEY TO
IF BOF()
GO BOTTOM
ELSE
SKIP - 1
ENDIF
gnMemo = 1
DO DlgSetHp
DO DlgDsHe
TI_TEXT = HelpCTit( TRIM( hlp_headng ), 51, .T. )
DO TStatic WITH WM_PAINT, BN_HILITE, GetId( "TI_TEXT" )
TI_TEXT = TRIM( hlp_headng )
*-------------------------
*-- Validation for DLGCont
*-------------------------
CASE p__val = "LB_CONT_1"
DO CASE
CASE TYPE( "pn_msg" ) = "N" .AND. pn_msg = LBN_DBLCLK
*-----------------------
*-- ON SELECTION routine
*-----------------------
gnBarSel = nLB_CONT
nLB_CONT = 0
nAccel = GetId( "LB_CONT_1" ) && Force GetNext call to make popup
CASE TYPE( "pn_msg" ) = "N" .AND. pn_msg = LBN_SELCHA
*-----------------------
*-- ON POPUP routine
*-----------------------
CASE TYPE( "btCont1st" ) = "L" .AND. btCont1st
btCont1st = .F.
CASE TYPE( "p__dir" ) = "N"
*--------------------------------
*-- Validation routine in GetNext
*--------------------------------
DO CASE
CASE gnLevel = 3 && Top level of contents
gnLevel = 2
GO TOP
IF gnBarSel > 0
GO TOP
SKIP gnBarSel - 1
gc_file = TRIM( hlp_file )
gc_name = ""
DO TList WITH WM_PAINT, WM_DRAWITEM, GetId( "LB_CONT_1" )
nCurrent = GetId( "LB_CONT_1" )
lValidOk = .F.
gnBarSel = -1
ENDIF
CASE gnLevel = 2 && Mid level of contents
gnLevel = 1
nMess = DLN_OK
ENDCASE
ENDCASE
CASE p__val = "BT_UPLVL"
gnLevel = 3
nLB_CONT = 0
DO DlgHePop
SHOW POPUP LB_CONT_1
nCurrent = GetId( "LB_CONT_1" )
p__dir = nCurrent
nMess = KB_ENTER
*-------------------------
*-- Validation for DLGEdit
*-------------------------
CASE p__val = "BT_EDITFR"
IF RLOCK()
nMemLines = MEMLINE( Hlp_Text )
nLine = 1
lOk = .T.
IF .NOT. FILE( gcHelpFile )
lh = 0
lh = FCREATE( gcHelpFile )
IF lh > 0
DO WHILE nLine <= nMemLines
cLine = MLINE( Hlp_Text, nLine )
n = FPUTS( lh, cLine )
nLine = nLine + 1
ENDDO
IF FCLOSE( lh )
ENDIF
ELSE
lOk = .F.
ENDIF
ENDIF
IF lOk
SAVE SCREEN TO EditFr
KEYBOARD [ ]
cDBEdit = HOME() + "DBEdit"
! &cDBEDIT &gcHelpFile 4 6 15 74
RESTORE SCREEN FROM EditFr
RELEASE SCREEN EditFr
gnMemo = 1
DO DlgSetHp && Set the help display lines
DO DlgDsHe && Now, display them
ELSE
DO _Err_Box WITH [Cannot create file: ] + gcHelpFile
ENDIF
ELSE
DO _Err_Box WITH [Record in use by another]
ENDIF
ENDCASE
IF lExact
SET EXACT ON
ELSE
SET EXACT OFF
ENDIF
RETURN( .t. )
*-- EOF: DlgHeVl()